# 题目: 326. 3的幂

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。

整数 n 是 3 的幂次方需满足:存在整数 x 使得

# 示例1:

输入:n = 27
输出:true

# 示例2:

输入:n = 0
输出:false 

# 提示

# 题解: 试除法

不断的使用 n 除以 3,直到n%3不为0时,最后判断n === 1

  1. n === 1,则 返回 true
  2. n !== 1, 则 返回 false

# 代码

/**
 * @param {number} n
 * @return {boolean}
 */
var isPowerOfThree = function(n) {
    while(n && n%3===0){
        n /= 3
    }
    return n==1
};

# 题解: 幂最大的约树

n的范围在 , 则最大 的 3 的幂为

我们只需要判断 n 是否是 的约数即可。 但是这里要判断 n 为 非正数 的情况

# 代码

/**
 * @param {number} n
 * @return {boolean}
 */
var isPowerOfThree = function(n) {
 return n > 0 && 1162261467 % n === 0
};

# 参考资料